1. Field of the Invention
This invention is related to virtual machines and, more particularly, to the backup and restore of virtual machines.
2. Description of the Related Art
Virtual machines have a variety of uses in computer systems. For example, virtual machines are used to provide several users with concurrent access to a single physical computer system. Each user executes applications in a different virtual machine, and the virtual machines are scheduled for execution on the computer system hardware. The processing power of the computer system can be more effectively utilized by providing multiple virtual machines on the computer system. Additionally, user's activities are protected from the operation of other user's programs via the division into virtual machines. Virtual machines can also be used during software development to test the software on various hardware configurations (e.g. each hardware configuration is represented by a differently-configured virtual machine). Virtual machines can be used to consolidate tasks that were previously running on separate computer systems by assigning each task to a virtual machine and running the virtual machines on fewer computer systems. There are many other uses for virtual machines as well.
Because of their usefulness, virtual machines are being deployed more frequently across the computing spectrum. Additionally, the continued increase in processing power that is available on a single computer system (and especially on larger server systems) makes the overhead of the virtual machine less noticeable to the user, and permits more virtual machines to be executed on a single computer system. Cost savings may be realized by requiring fewer physical computer systems to provide the needed processing power for a given set of users.
Computer systems, and their components, are subject to various failures which may result in the loss of data. For example, a storage device used in or by the computer system may experience a failure (e.g. mechanical, electrical, magnetic, etc.) which may make any data stored on that storage device unreadable. Erroneous software or hardware operation may corrupt the data stored on a storage device, destroying the data stored on an otherwise properly functioning storage device. Any component in the storage chain between (and including) the storage device and the computer system may experience failure (e.g. the storage device, connectors (e.g. cables) between the storage device and other circuitry, the network between the storage device and the accessing computer system (in some cases), etc.).
To mitigate the risk of losing data, computer system users typically make backup copies of data stored on various storage devices. In the case of virtual machines, it is generally possible to make a backup copy of the entire virtual machine state. To restore data in the event of a data loss, the entire virtual machine state is restored and the virtual machine is restarted. There is no granularity in the data that is to be restored. In some cases, users can install backup software inside their virtual machines to provide for granularity in the restore, but users are often reluctant to install the software.